package com.tedu.api.ee;

import org.junit.Test;

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

/**
 * Exception异常---检查异常---处理手段：抛出4
 * throw与throws【异常关键字】
 * throw关键字：
 * 特点：主要用于方法体内，如果throw执行，一定抛出某种异常
 * 且只能抛出一个异常对象---RuntimeException【主动抛异常】
 * 语法：方法体内-->throw  new  RuntimeException（“自定义异常”）
 * <p>
 * throws关键字：
 * 特点：在主方法/方法  后抛出，跟着异常对象名字，可以抛出多个对象
 * 如果是多个对象，用逗号分隔，表示异常抛出方法或者主方法之外，并未处理
 * 【被动抛出异常】
 * 语法：  throws 异常名字，异常名字【直接抛Exception】{}
 */
public class Person {
    private int age;     //年龄--私有属性

    public int getAge() {
        return age;
    }

    //创建Person对象---设置Person对象年龄----“主动抛出异常 -1  121”
    public void setAge(int age) {
        if (age < 0 || age > 120) {
            //人  年龄  0~120岁  不合理   age<0||age>120
            throw new RuntimeException("年龄异常！");
        }
        this.age = age;
    }

    @Test
    public void test01() throws FileNotFoundException {
        FileOutputStream fis = new FileOutputStream("");
        BufferedOutputStream bos = new BufferedOutputStream(fis, 10);
    }

    public static void main(String[] args) throws Exception {
        //throws关键字   被动抛出异常
        FileOutputStream fis = new FileOutputStream("");
        BufferedOutputStream bos = new BufferedOutputStream(fis, 10);

        Person p = new Person();
        //设定年龄：合理   0~120
        p.setAge(118);
        System.out.println("我的年龄是：" + p.getAge());
    }
}